Cachear contenido

Descripción

Como utilizar Breakpoints en visual studio para depurar el código.

Código Ejemplo
Cachear en aplicacion (.net Framework 4.7.2)

En .Net Framework 4.8 y anteriores podemos usar la clase Cache para cachear información, para poder usarla en un proyecto tenemos que crear un proyecto MVC:

Otra alternativa es crear un proyecto de consola y añadir la referencia de System.Web:

<Reference Include="System.Web" />

También es necesario añadir el siguiente namespace:

using System.Web.Caching;

Podemos implementar la clase Cache de la siguiente manera, en este caso es utilizando una aplicación de consola:

Clase Almacen:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Caching;

namespace AlmacenApp
{
    internal class Almacen
    {
        private Cache cache;
        public Almacen()
        {
            cache = new Cache();
        }

        public String ObtenerDato()
        {
            String dato;

            dato = cache.Get("datoCadena") as String;

            if (dato == null)
            {
                dato = ObtenerDesdeFuenteExterna();
                cache.Add("datoCadena", dato, null, DateTime.Now.AddDays(1), TimeSpan.Zero, CacheItemPriority.High,
                null);
            }

            return dato;
        }

        private String ObtenerDesdeFuenteExterna()
        {
            return "hola";
        }


    }
}

Programa principal:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Caching;

namespace AlmacenApp
{
    internal class AlmacenApp
    {
        static void Main(string[] args)
        {
            Almacen almacen = new Almacen();

            Console.WriteLine(almacen.ObtenerDato());

            Console.WriteLine(almacen.ObtenerDato());
        }
    }
}

En este caso la primera vez que se llama a ObtenerDato() como no hay nada en cache obtiene la información de una fuente externa (en este caso simplemente está simulada como una funcion normal), pero la segunda vez que se ejecuta la función la información ya está almacenada en cache y se obtiene de ahí sin necesidad de tener que recurrir a una fuente de datos externa como puede ser una API o una base de datos.

Cachear en el navegador

Establecer cabeceras para que el navegador haga el cacheo.

Añadimos la siguiente configuración en el web.config:

<httpProtocol>
    <customHeaders>
        <add name="Cache-Control" value="public, max-age=86400" />
    </customHeaders>
</httpProtocol>

max-age indica el tiempo a cachear el contenido en segundos, en este caso 86400 indica un día completo.

Tags

.net | Cache